Distributed systems allow users to run applications hosted on distributed resources, such as a remote central processing unit (CPU), central server, or physical or virtual machine. Middleware services provide computation, coordination, information management, hosting and other support to the applications on the distributed resources. Middleware components are software applications or computer instructions that run on the distributed resources and that provide a service or implement protocols or algorithms for users. The middleware components may provide complex or specialized applications. The user interacts with the middleware components when a function provided by a middleware component is needed. The demand for the middleware components varies depending upon the users' needs. Accordingly, the middleware components running on the distributed resources may be idle if there is no user demand or, in cases of high user demand, the distributed resources may be unable to service all user needs.